﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Rockfan.Framework;
using Rockfan.Framework.Audio.Midi;

namespace Rockfan.Framework.Audio
{
    public sealed class BeatTrackEvent : TrackEvent
    {
        #region Properties

        /// <summary>
        /// Gets the type this event indicates
        /// </summary>
        public MarkerType ID { get; private set; }

        /// <summary>
        /// Gets the amount of beats per minute this marker is at this event time
        /// </summary>
        public float BPM { get; private set; }

        #endregion

        #region Constructor

        /// <summary>
        /// Constructs a new instance of this object
        /// </summary>
        /// <param name="start">a float value indicating the amount of time in seconds since the start of the track</param>
        /// <param name="id">the type this event indicates</param>
        /// <param name="bpm">the amount of beats per minute this marker is at this event time</param>
        public BeatTrackEvent(float start, MarkerType id, float bpm)
            : base(start)
        {
            this.BPM = bpm;
            this.ID = id;
        }

        #endregion
    }
}
